This application is related to the field of color reproduction, and more specifically, to methods and systems for mapping from an additive color-space associated with a display to a subtractive color-space associated with a printer. The application describes an invention for use with digital color printers such as xerographic and ink-jet printers.
At the very least, a color printer is expected to reproduce on paper the colors that appear on a display monitor. A fundamental difficulty inherent in this task is that a display monitor generates color by illuminating combinations of red, green, and blue phosphors on a screen, whereas a printer generates color by depositing selected amounts of cyan, magenta, and yellow inks on paper. To accurately reproduce a screen color on paper, it is therefore necessary to determine, for each location on the display, what mixture of inks on paper corresponds to a particular combination of phosphors on the display. This process of determining how to represent the same color on two different media is referred to as a transformation from one xe2x80x9ccolor spacexe2x80x9d to another.
A display monitor generates colors by forming a linear combination of three primary colors. For most display monitors, the three primary colors are red, green, and blue. However, any three colors can be used as primary colors provided that no primary color can be generated by a combination of the other two primary colors.
The color space associated with a display monitor is thus an additive color-space. An additive color-space is roughly analogous to a linear vector space in which the three primary colors form a basis and the color is a vector represented in terms of that basis. Because additive color-spaces are analogous to linear vector spaces, given the representation of a color in terms of one basis, one can easily represent the color in terms of a different basis by performing a matrix transformation.
Throughout this specification, we refer to the color space associated with the display as a xe2x80x9csource color-space.xe2x80x9d This color space can be an RGB color-space. However, it is common to transform the RGB color-space into a perceptually uniform space in which the distance between any two colors is indicative of the subjective perceptual difference between those two colors. An example of such a color space is the CIEL*a*b* color-space.
It would appear, based on the foregoing, that the problem of determining the ink mixture corresponding to a particular color in the source color-space is no more difficult than performing a matrix transformation. However, this assumes that the color space associated with the printer is also an additive color-space. It is not.
In contrast to the phosphors of a display monitor, an ink generates color by taking away selected colors that are already present. This is easily demonstrated by comparing the result of placing a spot of yellow ink on a black piece of paper with the result of placing a spot of ink on a white piece of paper. In the latter case, the white paper reflects all colors present in that light and the yellow ink suppresses the reflection of all but the yellow component of the incident light. In the former case, the black paper does not reflect any of the colors in the incident light. Hence, there is nothing for the yellow ink to suppress.
Unlike the additive source color-space associated with the display monitor, the color space associated with the printer is a subtractive color-space. An additional difficulty is introduced by the fact that printer inks absorb colors other than their nominal colors. In general, the transformation from an additive color-space to a subtractive color-space is non-linear and cannot be accomplished by a matrix transformation.
Conventional methods for performing a color transformation between colors in an additive color-space and corresponding colors in a subtractive color-space rely on a color-transformation table. In such methods, one determines the additive color combination to be reproduced, locates that combination on the table, and reads the appropriate mixture of inks that best reproduces that color. Since it is generally impractical to include every possible combination of additive primary colors in a color-transformation table, there are many instances in which a particular combination of additive primary colors combination is not listed. When this occurs, the conventional method interpolates the appropriate ink mixture on the basis of the ink mixtures associated with nearby combinations of additive primary colors.
In order to generate a color-transformation table, it is necessary to make colorimetric measurements for each ink mixture listed on the table. Since color-transformation tables generally include over a thousand distinct colors, the creation of a table is a daunting task. In most cases, a color-transformation table is generated only once, with a typical printer operating under normal conditions. Such a table cannot easily accommodate small manufacturing differences between individual printers, changes in performance of a printer as it ages, changes in the properties of ink over time, and the changes in the environmental conditions in which the printer operates. These changes result in subtle variations in color that are not readily accommodated by a single table. Although, in principle, these variations can be accommodated by generating a new color-transformation table, the number of colorimetric measurements required to do so makes this an impractical option.
The range of colors, or xe2x80x9cgamut,xe2x80x9d that can be printed defines a three-dimensional solid in the CMY color-space. The resulting solid is referred to as the printer gamut. The source gamut does not, in general, define a cube in the source color-space. Nevertheless, a conventional color-transformation table samples the printer gamut within a regular grid of points in the CMY color-space. This sampling scheme which would be appropriate if the printer gamut were a cube, results in a quantization error at the printer gamut boundary when the printer gamut is an irregular solid in the source color-space. This error results in clipping, or truncation, for colors outside the quantitized printer gamut boundary.
In some cases, the color image to be reproduced has a greater dynamic range than the color printer is capable of printing. This may occur, for example, when the image is a photograph. A related problem arises when the gamut of colors to be reproduced is different from that provided by the printer. For example, a computer monitor can display many bright secondary colors that cannot be reproduced in a subtractive color-space. In both these cases, the image to be reproduced must have its gamut compressed so that all colors to be reproduced are within the printer gamut. This need to perform gamut compression raises the question of how to select a target color within the printer gamut to correspond to an out-of-gamut color in the source image. Known methods for performing gamut compression agree that it is desirable for the target color in the printer gamut to have the same hue angle as the source color in the source image. Many known methods also agree that it is preferable to reduce lightness before reducing chroma. Other known methods of performing gamut compression map the out-of-gamut color to the closest point that lies within the printer gamut. These methods rely on precise knowledge of the gamut boundary. However, in modeling the geometry of a printer gamut, these methods do not take into account the highly irregular geometry of the printer gamut.
The method and system of the invention relies on the observation that although the mapping from an additive color-space to a subtractive color-space is non-linear, the mapping from a limited portion of the additive color-space to a corresponding limited portion of the subtractive color-space is approximately linear. In effect, the mapping between the two color spaces is globally non-linear but piecewise linear. As a result, it is possible to partition the printer gamut into a plurality of volumes and to map only the boundaries of those volumes. Once the mapping of the boundaries is performed, the interior points are assumed to map linearly so that the coordinates of the interior point in a coordinate system local to the volume being mapped remains the same before and after the mapping.
A method for implementing a color mapping in accordance with the principles of the invention includes the step of transforming the printer gamut, which is in a subtractive color-space, to an equivalent printer-gamut in an additive color-space. This equivalent gamut is then partitioned into a plurality of non-overlapping constituent volumes, each of which has a common boundary point. The method then searches for a constituent volume that contains the source color within it. If this constituent volume is found, it is designated as the source-bearing volume. The method then identifies a corresponding target-bearing volume in the subtractive color-space and identifies a target color in that target-bearing volume-that corresponds to the source color in the source-bearing volume.
The gamut transformation step is generally performed by instructing the printer to print samples of selected colors and then performing colorimetric measurements on those volumes with a calorimeter or similar device. Since the output of the colorimeter is in an additive color-space, the effect is to transform the subtractive color-space of the printer into an additive color-space.
In a preferred embodiment, the constituent volumes are tetrahedra having a common vertex at a point on the neutral axis of the equivalent gamut. The number of tetrahedra is preferably twenty-four, however an embodiment with only twelve tetrahedra is suitable for applications in which processing power is limited.
The step of identifying a point in the target-bearing volume that corresponds to the source color in the source-bearing volume can be accomplished by obtaining barycentric coordinates of the source color in the source-bearing volume and selecting that point in the target-bearing volume that has the same barycentric coordinates relative to the target-bearing volume.
In some cases, the source color will be such that none of the constituent volumes in the equivalent gamut will contain it. In such cases, the method of the invention also includes the step of performing a gamut compression in order to map selected points in the CMY color-space to a corresponding point in a compressed printer-gamut. This is accomplished by defining a maximum surface envelope enclosing the printer gamut and mapping all source points within the maximum surface envelope into the compressed printer-gamut by means of a compression function. In the preferred embodiment, the compression function is a fourth-degree polynomial with coefficients selected to satisfy constraints on the properties of the mapping at selected points in the gamut.
These and other features of the invention, together With a preferred embodiment thereof, will be apparent from an inspection of the following detailed description and the accompanying figures in which: